package com.example.rdcproject.ving.notes.util;


import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class PasswordUtils {

    /**
     * 使用了Java内置的MessageDigest类来进行SHA-256算法加密
     * 然后，我们使用digest方法对密码进行哈希，结果转换成Base64编码的字符串返回
     */
    public static String hashPassword(String password) {
        try {
            MessageDigest md = MessageDigest.getInstance("SHA-256");
            byte[] hashBytes = md.digest(password.getBytes(StandardCharsets.UTF_8));
            return Base64.getEncoder().encodeToString(hashBytes);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }
    }
    /**
     *使用hashPassword方法对用户输入的密码进行哈希，与存储的哈希值进行比较
     */
    public static boolean checkPassword(String password, String hashedPassword) {
        String hashpassword = PasswordUtils.hashPassword(password);
        return hashpassword.equals(hashedPassword);
    }
}
